import asyncio
import aiohttp


# 异步函数，用于从 URL 获取内容
async def fetch_url(session, url):
    async with session.get(url) as response:
        return await response.text()


# 主函数，用于并发发送多个 HTTP 请求
async def main():
    urls = ['https://www.csdn.net/', 'https://www.baidu.com',]

    # 使用 aiohttp 创建异步会话
    async with aiohttp.ClientSession() as session:
        # 创建异步任务列表，每个任务会调用 fetch_url 函数，传递不同的 URL
        tasks = [fetch_url(session, url) for url in urls]

        # 并发执行所有异步任务，并等待结果
        results = await asyncio.gather(*tasks)

        # 打印每个 URL 的内容长度
        for url, result in zip(urls, results):
            print(f"Content from {url}: {len(result)} bytes")


# 创建并运行事件循环
loop = asyncio.get_event_loop()
loop.run_until_complete(main())  # 运行主函数并等待其完成
loop.close()  # 关闭事件循环
